/**
 * 单例模式
 */
export default class SingleClass {
    
    public constructor() {

    }

    // /**
    //  * 获取一个单例
    //  * @returns {any}
    //  */
    // public static getInstance(...param: any[]): any {
    //     let Class: any = this;
    //     if (!Class._instance) {
    //         Class._instance = new Class(...param);
    //     }
    //     return Class._instance;
    // }

    /**
    * 获取一个单例
    * @returns {any}
    */
    static getInstance<T extends {}>(): T {
        if (!(<any>this)._instance) {
            (<any>this)._instance = new this();
        }
        return (<any>this)._instance;
    }
}